<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ShipCAD: ShipCAD::SubdivisionFace Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ShipCAD
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceShipCAD.html">ShipCAD</a></li><li class="navelem"><a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classShipCAD_1_1SubdivisionFace-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ShipCAD::SubdivisionFace Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="subdivface_8h_source.html">subdivface.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ShipCAD::SubdivisionFace:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classShipCAD_1_1SubdivisionFace.png" usemap="#ShipCAD::SubdivisionFace_map" alt=""/>
  <map id="ShipCAD::SubdivisionFace_map" name="ShipCAD::SubdivisionFace_map">
<area href="classShipCAD_1_1SubdivisionBase.html" title="the base class for all subdivision points, edges and faces " alt="ShipCAD::SubdivisionBase" shape="rect" coords="0,0,205,24"/>
<area href="classShipCAD_1_1SubdivisionControlFace.html" alt="ShipCAD::SubdivisionControlFace" shape="rect" coords="0,112,205,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a082f81f7a5750f7e53ed5a92ddc82350"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a082f81f7a5750f7e53ed5a92ddc82350">SubdivisionFace</a> (<a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *owner)</td></tr>
<tr class="memdesc:a082f81f7a5750f7e53ed5a92ddc82350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a082f81f7a5750f7e53ed5a92ddc82350">More...</a><br /></td></tr>
<tr class="separator:a082f81f7a5750f7e53ed5a92ddc82350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d6c25b6b03eddb875c25e8cee6ca976"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a8d6c25b6b03eddb875c25e8cee6ca976">~SubdivisionFace</a> ()</td></tr>
<tr class="separator:a8d6c25b6b03eddb875c25e8cee6ca976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d5e005d1c7c847ccf9ba72b67142fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a16d5e005d1c7c847ccf9ba72b67142fa">flipNormal</a> ()</td></tr>
<tr class="memdesc:a16d5e005d1c7c847ccf9ba72b67142fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">swap normal vector to other face  <a href="#a16d5e005d1c7c847ccf9ba72b67142fa">More...</a><br /></td></tr>
<tr class="separator:a16d5e005d1c7c847ccf9ba72b67142fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a553df49a1137f89d2df2846ffca74842"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a553df49a1137f89d2df2846ffca74842">addPoint</a> (<a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *point)</td></tr>
<tr class="memdesc:a553df49a1137f89d2df2846ffca74842"><td class="mdescLeft">&#160;</td><td class="mdescRight">add a point to the face  <a href="#a553df49a1137f89d2df2846ffca74842">More...</a><br /></td></tr>
<tr class="separator:a553df49a1137f89d2df2846ffca74842"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacd383eb085c4f6b92db89e25be6b3a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#aacd383eb085c4f6b92db89e25be6b3a1">insertPoint</a> (size_t index, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *point)</td></tr>
<tr class="memdesc:aacd383eb085c4f6b92db89e25be6b3a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">insert a new point into the face  <a href="#aacd383eb085c4f6b92db89e25be6b3a1">More...</a><br /></td></tr>
<tr class="separator:aacd383eb085c4f6b92db89e25be6b3a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a413ae7e76f559780c8a69e998974fb75"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a413ae7e76f559780c8a69e998974fb75">clear</a> ()</td></tr>
<tr class="memdesc:a413ae7e76f559780c8a69e998974fb75"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset point attributes to default values  <a href="#a413ae7e76f559780c8a69e998974fb75">More...</a><br /></td></tr>
<tr class="separator:a413ae7e76f559780c8a69e998974fb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a934edbf44e524a2ec250f896c3cc182d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a934edbf44e524a2ec250f896c3cc182d">subdivide</a> (bool controlface, std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;vertexpoints, std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;edgepoints, std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;facepoints, std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;interioredges, std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;controledges, std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> * &gt; &amp;dest)</td></tr>
<tr class="memdesc:a934edbf44e524a2ec250f896c3cc182d"><td class="mdescLeft">&#160;</td><td class="mdescRight">subdivide the face  <a href="#a934edbf44e524a2ec250f896c3cc182d">More...</a><br /></td></tr>
<tr class="separator:a934edbf44e524a2ec250f896c3cc182d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd79b6dfadd10befe94b524a34063b27"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#abd79b6dfadd10befe94b524a34063b27">numberOfPoints</a> () const </td></tr>
<tr class="memdesc:abd79b6dfadd10befe94b524a34063b27"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of points for this face  <a href="#abd79b6dfadd10befe94b524a34063b27">More...</a><br /></td></tr>
<tr class="separator:abd79b6dfadd10befe94b524a34063b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02d048ba8de79787bc692e5f20fd276e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a02d048ba8de79787bc692e5f20fd276e">hasPoint</a> (const <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *pt) const </td></tr>
<tr class="memdesc:a02d048ba8de79787bc692e5f20fd276e"><td class="mdescLeft">&#160;</td><td class="mdescRight">does the face have this point  <a href="#a02d048ba8de79787bc692e5f20fd276e">More...</a><br /></td></tr>
<tr class="separator:a02d048ba8de79787bc692e5f20fd276e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68bc7676c4f254ddb19e04f8cb5ba76f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a68bc7676c4f254ddb19e04f8cb5ba76f">getPoint</a> (size_t index) const </td></tr>
<tr class="memdesc:a68bc7676c4f254ddb19e04f8cb5ba76f"><td class="mdescLeft">&#160;</td><td class="mdescRight">get face point  <a href="#a68bc7676c4f254ddb19e04f8cb5ba76f">More...</a><br /></td></tr>
<tr class="separator:a68bc7676c4f254ddb19e04f8cb5ba76f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5da55a479cd54b90fc0ec5d0bedb9279"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a5da55a479cd54b90fc0ec5d0bedb9279">getLastPoint</a> () const </td></tr>
<tr class="memdesc:a5da55a479cd54b90fc0ec5d0bedb9279"><td class="mdescLeft">&#160;</td><td class="mdescRight">get last point in face  <a href="#a5da55a479cd54b90fc0ec5d0bedb9279">More...</a><br /></td></tr>
<tr class="separator:a5da55a479cd54b90fc0ec5d0bedb9279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb9c6f01f3896dc39819265922a04892"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#aeb9c6f01f3896dc39819265922a04892">calculateFacePoint</a> ()</td></tr>
<tr class="memdesc:aeb9c6f01f3896dc39819265922a04892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get point on center of face for subdivision.  <a href="#aeb9c6f01f3896dc39819265922a04892">More...</a><br /></td></tr>
<tr class="separator:aeb9c6f01f3896dc39819265922a04892"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13b147bdc2d5fda0dcbc6de240bc05cd"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a13b147bdc2d5fda0dcbc6de240bc05cd">indexOfPoint</a> (const <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *pt) const </td></tr>
<tr class="memdesc:a13b147bdc2d5fda0dcbc6de240bc05cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">get index of point for this face  <a href="#a13b147bdc2d5fda0dcbc6de240bc05cd">More...</a><br /></td></tr>
<tr class="separator:a13b147bdc2d5fda0dcbc6de240bc05cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f27fc04bf353dd6295da574fa97c1f8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a1f27fc04bf353dd6295da574fa97c1f8">getArea</a> () const </td></tr>
<tr class="memdesc:a1f27fc04bf353dd6295da574fa97c1f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculate the area of this face  <a href="#a1f27fc04bf353dd6295da574fa97c1f8">More...</a><br /></td></tr>
<tr class="separator:a1f27fc04bf353dd6295da574fa97c1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab22c43ec3d209a9f7b0b9bfe5d609508"><td class="memItemLeft" align="right" valign="top">QVector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#ab22c43ec3d209a9f7b0b9bfe5d609508">getFaceCenter</a> () const </td></tr>
<tr class="memdesc:ab22c43ec3d209a9f7b0b9bfe5d609508"><td class="mdescLeft">&#160;</td><td class="mdescRight">get coordinates of the center of the face  <a href="#ab22c43ec3d209a9f7b0b9bfe5d609508">More...</a><br /></td></tr>
<tr class="separator:ab22c43ec3d209a9f7b0b9bfe5d609508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b07cf08781a9d80caf14a8f97df148"><td class="memItemLeft" align="right" valign="top">QVector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a94b07cf08781a9d80caf14a8f97df148">getFaceNormal</a> () const </td></tr>
<tr class="memdesc:a94b07cf08781a9d80caf14a8f97df148"><td class="mdescLeft">&#160;</td><td class="mdescRight">get coordinates of the face normal  <a href="#a94b07cf08781a9d80caf14a8f97df148">More...</a><br /></td></tr>
<tr class="separator:a94b07cf08781a9d80caf14a8f97df148"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba3fbf26d70b4eb3ef245c7f7cb16e03"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#aba3fbf26d70b4eb3ef245c7f7cb16e03">intersectWithRay</a> (const <a class="el" href="structShipCAD_1_1PickRay.html">PickRay</a> &amp;ray) const </td></tr>
<tr class="memdesc:aba3fbf26d70b4eb3ef245c7f7cb16e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">does a ray intersect this face  <a href="#aba3fbf26d70b4eb3ef245c7f7cb16e03">More...</a><br /></td></tr>
<tr class="separator:aba3fbf26d70b4eb3ef245c7f7cb16e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5bd261ae5fc0a1c7fe8cc5328b8477f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#aa5bd261ae5fc0a1c7fe8cc5328b8477f">dump</a> (std::ostream &amp;os, const char *prefix=&quot;&quot;) const </td></tr>
<tr class="memdesc:aa5bd261ae5fc0a1c7fe8cc5328b8477f"><td class="mdescLeft">&#160;</td><td class="mdescRight">print out the element to a stream  <a href="#aa5bd261ae5fc0a1c7fe8cc5328b8477f">More...</a><br /></td></tr>
<tr class="separator:aa5bd261ae5fc0a1c7fe8cc5328b8477f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classShipCAD_1_1SubdivisionBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classShipCAD_1_1SubdivisionBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classShipCAD_1_1SubdivisionBase.html">ShipCAD::SubdivisionBase</a></td></tr>
<tr class="memitem:ad424b99e73d138f565a152ed0ee648cb inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#ad424b99e73d138f565a152ed0ee648cb">SubdivisionBase</a> (<a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *owner)</td></tr>
<tr class="memdesc:ad424b99e73d138f565a152ed0ee648cb inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#ad424b99e73d138f565a152ed0ee648cb">More...</a><br /></td></tr>
<tr class="separator:ad424b99e73d138f565a152ed0ee648cb inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12b4adebcd9fb52d4d82d9ff469e144d inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a12b4adebcd9fb52d4d82d9ff469e144d">~SubdivisionBase</a> ()</td></tr>
<tr class="separator:a12b4adebcd9fb52d4d82d9ff469e144d inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b9a68b5c7e6a20cf52a465f2387ffba inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a0b9a68b5c7e6a20cf52a465f2387ffba">getOwner</a> ()</td></tr>
<tr class="memdesc:a0b9a68b5c7e6a20cf52a465f2387ffba inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the owning surface  <a href="#a0b9a68b5c7e6a20cf52a465f2387ffba">More...</a><br /></td></tr>
<tr class="separator:a0b9a68b5c7e6a20cf52a465f2387ffba inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e98f69a132bcc75a0f6515b7a8a80f5 inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a8e98f69a132bcc75a0f6515b7a8a80f5">getOwner</a> () const </td></tr>
<tr class="memdesc:a8e98f69a132bcc75a0f6515b7a8a80f5 inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the owning surface  <a href="#a8e98f69a132bcc75a0f6515b7a8a80f5">More...</a><br /></td></tr>
<tr class="separator:a8e98f69a132bcc75a0f6515b7a8a80f5 inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f64480f79c9260facc2d27cd19a36ed inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a8f64480f79c9260facc2d27cd19a36ed">setOwner</a> (<a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *newowner)</td></tr>
<tr class="memdesc:a8f64480f79c9260facc2d27cd19a36ed inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the owing surface  <a href="#a8f64480f79c9260facc2d27cd19a36ed">More...</a><br /></td></tr>
<tr class="separator:a8f64480f79c9260facc2d27cd19a36ed inherit pub_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a4a6f182fa7e5cf63fc95c7614805f136"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a4a6f182fa7e5cf63fc95c7614805f136">construct</a> (<a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *owner)</td></tr>
<tr class="separator:a4a6f182fa7e5cf63fc95c7614805f136"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab2f647963b552728f40d8c329318676e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#ab2f647963b552728f40d8c329318676e">priv_dump</a> (std::ostream &amp;os, const char *prefix) const </td></tr>
<tr class="separator:ab2f647963b552728f40d8c329318676e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5399f7ec8ed458f6dbc733688c006cf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#a5399f7ec8ed458f6dbc733688c006cf8">edgeCheck</a> (<a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *p1, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *p2, bool crease, bool controledge, <a class="el" href="classShipCAD_1_1SubdivisionControlCurve.html">SubdivisionControlCurve</a> *curve, std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;interioredges, std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;controledges)</td></tr>
<tr class="memdesc:a5399f7ec8ed458f6dbc733688c006cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">check for edge between points  <a href="#a5399f7ec8ed458f6dbc733688c006cf8">More...</a><br /></td></tr>
<tr class="separator:a5399f7ec8ed458f6dbc733688c006cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classShipCAD_1_1SubdivisionBase"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classShipCAD_1_1SubdivisionBase')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classShipCAD_1_1SubdivisionBase.html">ShipCAD::SubdivisionBase</a></td></tr>
<tr class="memitem:a024aa781bbf2e54b6fb088e33126998e inherit pro_methods_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a024aa781bbf2e54b6fb088e33126998e">priv_dump</a> (std::ostream &amp;os, const char *prefix) const </td></tr>
<tr class="memdesc:a024aa781bbf2e54b6fb088e33126998e inherit pro_methods_classShipCAD_1_1SubdivisionBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">dump the element to a stream  <a href="#a024aa781bbf2e54b6fb088e33126998e">More...</a><br /></td></tr>
<tr class="separator:a024aa781bbf2e54b6fb088e33126998e inherit pro_methods_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ae1178fe10860c57e3e54a397b4dc7b4b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionFace.html#ae1178fe10860c57e3e54a397b4dc7b4b">_points</a></td></tr>
<tr class="separator:ae1178fe10860c57e3e54a397b4dc7b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classShipCAD_1_1SubdivisionBase"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classShipCAD_1_1SubdivisionBase')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classShipCAD_1_1SubdivisionBase.html">ShipCAD::SubdivisionBase</a></td></tr>
<tr class="memitem:a164481259436bf18bc22a0626ab66c09 inherit pro_attribs_classShipCAD_1_1SubdivisionBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classShipCAD_1_1SubdivisionBase.html#a164481259436bf18bc22a0626ab66c09">_owner</a></td></tr>
<tr class="separator:a164481259436bf18bc22a0626ab66c09 inherit pro_attribs_classShipCAD_1_1SubdivisionBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="subdivface_8h_source.html#l00058">58</a> of file <a class="el" href="subdivface_8h_source.html">subdivface.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a082f81f7a5750f7e53ed5a92ddc82350"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">SubdivisionFace::SubdivisionFace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *&#160;</td>
          <td class="paramname"><em>owner</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">owner</td><td>parent surface </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00060">60</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8d6c25b6b03eddb875c25e8cee6ca976"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ShipCAD::SubdivisionFace::~SubdivisionFace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="subdivface_8h_source.html#l00067">67</a> of file <a class="el" href="subdivface_8h_source.html">subdivface.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a553df49a1137f89d2df2846ffca74842"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::addPoint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>add a point to the face </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">point</td><td>point to add </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00161">161</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aeb9c6f01f3896dc39819265922a04892"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * SubdivisionFace::calculateFacePoint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get point on center of face for subdivision. </p>
<p>When subdividing a face, each edge is split, and a point is put in the center of the face, then all are connected and new faces created. If the face is a triangle and we are not using fvCatmullClark, then a center point is not created. The face is then divided into triangles, instead of quadrilateral faces. In that case this returns a null point</p>
<dl class="section return"><dt>Returns</dt><dd>the point at center of face, or 0 if triangle and not using fvCatmullClark, or the number of face points is less than 3 </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00213">213</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a413ae7e76f559780c8a69e998974fb75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>reset point attributes to default values </p>

<p>Implements <a class="el" href="classShipCAD_1_1SubdivisionBase.html#a851bb7f1931f9dd6e53b6f9df7b5b352">ShipCAD::SubdivisionBase</a>.</p>

<p>Reimplemented in <a class="el" href="classShipCAD_1_1SubdivisionControlFace.html#ad168e31f0ef2537b3cd0f58b0c1c54e2">ShipCAD::SubdivisionControlFace</a>.</p>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00231">231</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4a6f182fa7e5cf63fc95c7614805f136"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> * SubdivisionFace::construct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionSurface.html">SubdivisionSurface</a> *&#160;</td>
          <td class="paramname"><em>owner</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00054">54</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa5bd261ae5fc0a1c7fe8cc5328b8477f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::dump </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>print out the element to a stream </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>the output stream </td></tr>
    <tr><td class="paramname">prefix</td><td>string to prefix on each line output </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classShipCAD_1_1SubdivisionBase.html#a7807e64ac8d2acc3da572e03cf0523b6">ShipCAD::SubdivisionBase</a>.</p>

<p>Reimplemented in <a class="el" href="classShipCAD_1_1SubdivisionControlFace.html#a947868fba3e9bb6c587847fb9245c9ff">ShipCAD::SubdivisionControlFace</a>.</p>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00412">412</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a5399f7ec8ed458f6dbc733688c006cf8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::edgeCheck </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>p1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>p2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>crease</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>controledge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionControlCurve.html">SubdivisionControlCurve</a> *&#160;</td>
          <td class="paramname"><em>curve</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>interioredges</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>controledges</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>check for edge between points </p>
<p>This method will create edges between 2 points if it doesn't exist.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p1</td><td>start point of edge </td></tr>
    <tr><td class="paramname">p2</td><td>end point of edge </td></tr>
    <tr><td class="paramname">crease</td><td>whether this edge is a crease </td></tr>
    <tr><td class="paramname">controledge</td><td>whether this edge is a control edge </td></tr>
    <tr><td class="paramname">curve</td><td>if edge is a controledge, then pass the curve to be attached </td></tr>
    <tr><td class="paramname">interioredges</td><td>if this edge is an interior edge, add it to this list </td></tr>
    <tr><td class="paramname">controledges</td><td>if this edge is a control, add it to this list </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00245">245</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a16d5e005d1c7c847ccf9ba72b67142fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::flipNormal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>swap normal vector to other face </p>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00236">236</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1f27fc04bf353dd6295da574fa97c1f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float SubdivisionFace::getArea </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>calculate the area of this face </p>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00093">93</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab22c43ec3d209a9f7b0b9bfe5d609508"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVector3D SubdivisionFace::getFaceCenter </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get coordinates of the center of the face </p>
<dl class="section return"><dt>Returns</dt><dd>coordinates of the face center </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00103">103</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a94b07cf08781a9d80caf14a8f97df148"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVector3D SubdivisionFace::getFaceNormal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get coordinates of the face normal </p>
<dl class="section return"><dt>Returns</dt><dd>coordinates of the face normal </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00116">116</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a5da55a479cd54b90fc0ec5d0bedb9279"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * SubdivisionFace::getLastPoint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get last point in face </p>
<dl class="section return"><dt>Returns</dt><dd>the last point in the face </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00154">154</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a68bc7676c4f254ddb19e04f8cb5ba76f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * SubdivisionFace::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get face point </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>index of point to get </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the point at index </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00147">147</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a02d048ba8de79787bc692e5f20fd276e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SubdivisionFace::hasPoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>does the face have this point </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>the point to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the point is part of the face </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00142">142</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a13b147bdc2d5fda0dcbc6de240bc05cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t SubdivisionFace::indexOfPoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get index of point for this face </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>point to find in face </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index of that point in face, same as numberOfPoints if point not in face </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00066">66</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aacd383eb085c4f6b92db89e25be6b3a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::insertPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>insert a new point into the face </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>insert the new point at this index </td></tr>
    <tr><td class="paramname">point</td><td>point to add to face </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00072">72</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aba3fbf26d70b4eb3ef245c7f7cb16e03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SubdivisionFace::intersectWithRay </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structShipCAD_1_1PickRay.html">PickRay</a> &amp;&#160;</td>
          <td class="paramname"><em>ray</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>does a ray intersect this face </p>
<dl class="section return"><dt>Returns</dt><dd>true if ray intersects face </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00198">198</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="abd79b6dfadd10befe94b524a34063b27"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t ShipCAD::SubdivisionFace::numberOfPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of points for this face </p>
<dl class="section return"><dt>Returns</dt><dd>number of points for this face </dd></dl>

<p>Definition at line <a class="el" href="subdivface_8h_source.html#l00122">122</a> of file <a class="el" href="subdivface_8h_source.html">subdivface.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab2f647963b552728f40d8c329318676e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::priv_dump </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00419">419</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a934edbf44e524a2ec250f896c3cc182d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SubdivisionFace::subdivide </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>controlface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertexpoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>edgepoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::pair&lt; <a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> *, <a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>facepoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>interioredges</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionEdge.html">SubdivisionEdge</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>controledges</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classShipCAD_1_1SubdivisionFace.html">SubdivisionFace</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>subdivide the face </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vertexpoints</td><td>list of Point &lt;-&gt; Point pairs. The first point is a vertex point on this face, the second point is a copy of this point to use in the new subdivided faces</td></tr>
    <tr><td class="paramname">edgepoints</td><td>list of Edge &lt;-&gt; Point pairs. The edge is an edge on this face. The point is the midpoint of that edge to use in the new subdivided faces</td></tr>
    <tr><td class="paramname">facepoints</td><td>list of Face &lt;-&gt; Point pairs.</td></tr>
    <tr><td class="paramname">interioredges</td><td>after subdivision, the new interior edges of the newly created faces will be added to this list</td></tr>
    <tr><td class="paramname">controledges</td><td>after subdivision, the new edges descended from control edges will be added to this list</td></tr>
    <tr><td class="paramname">dest</td><td>the new subdivided faces will be added to this list </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="subdivface_8cpp_source.html#l00279">279</a> of file <a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ae1178fe10860c57e3e54a397b4dc7b4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classShipCAD_1_1SubdivisionPoint.html">SubdivisionPoint</a>*&gt; ShipCAD::SubdivisionFace::_points</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>points belonging to this face </p>

<p>Definition at line <a class="el" href="subdivface_8h_source.html#l00211">211</a> of file <a class="el" href="subdivface_8h_source.html">subdivface.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ShipCADlib/<a class="el" href="subdivface_8h_source.html">subdivface.h</a></li>
<li>ShipCADlib/<a class="el" href="subdivface_8cpp_source.html">subdivface.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Feb 25 2018 15:36:00 for ShipCAD by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
